home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 7 / Night Owl Shareware (NOPV7)(Night Owl Publisher Inc.)(1992).bin / 038a / bash1_12.arj / BASH1-12.TAR / bash-1.12 / hash.h < prev    next >
C/C++ Source or Header  |  1991-07-07  |  938b  |  34 lines

  1. /* hash.h -- the data structures used in hashing in Bash. */
  2.  
  3. #if !defined (_HASH_H_)
  4. #define _HASH_H_
  5.  
  6. typedef struct bucket_contents {
  7.   struct bucket_contents *next;    /* Link to next hashed key in this bucket. */
  8.   char *key;            /* What we look up. */
  9.   char *data;            /* What we really want. */
  10.   int times_found;        /* Number of times this item has been found. */
  11. } BUCKET_CONTENTS;
  12.  
  13. typedef struct hash_table {
  14.   BUCKET_CONTENTS **bucket_array;    /* Where the data is kept. */
  15.   int nbuckets;            /* How many buckets does this table have. */
  16.   int nentries;            /* How many entries does this table have. */
  17. } HASH_TABLE;
  18.  
  19. extern BUCKET_CONTENTS
  20.   *find_hash_item (), *remove_hash_item (), *add_hash_item (),
  21.   *get_hash_bucket ();
  22.  
  23. extern int hash_string ();
  24. extern HASH_TABLE *make_hash_table ();
  25.  
  26. /* Default number of buckets in the hash table. */
  27. #define DEFAULT_HASH_BUCKETS 107
  28.  
  29. #ifndef NULL
  30. #define NULL 0x0
  31. #endif
  32.  
  33. #endif /* _HASH_H */
  34.